این جلسه یکی از مباحث عملی مهم است. در آزمون معمولاً سوال میشود که تفاوت VNC و Xrdp چیست و هر کدام برای چه کاربردی استفاده میشوند.
🖥️ قبل از شروع، یه مثال ساده:
فرض کن میخوای از خونه به کامپیوتر ادارهات متصل بشی و همه چیز رو دقیقاً مثل زمانی که جلوی سیستم نشستی، ببینی. Remote Desktop دقیقاً همین کار رو میکنه! بهت اجازه میده به محیط گرافیکی (GUI) یک سیستم دیگه از راه دور متصل بشی و باهاش کار کنی، انگار که جلوی اون سیستم نشستی.
▍ Remote Desktop چیست؟
Remote Desktop یا دسکتاپ از راه دور، تکنولوژیای است که به شما امکان میدهد به محیط گرافیکی (GUI) یک سیستم دیگر از طریق شبکه متصل شوید و آن را کنترل کنید. در لینوکس، این کار بر اساس ساختار کلاینت-سرور (Client-Server) انجام میشود.
🔑 ساختار Client-Server در X11:
- X Server: برنامهای که سختافزار گرافیکی (مانیتور، ماوس، صفحه کلید) را مدیریت میکند. (معمولاً روی سیستم محلی اجرا میشود).
- X Client: برنامههایی که روی X Server اجرا میشوند و از سختافزار گرافیکی استفاده میکنند.
- در بسیاری از توزیعها، هر دو بخش روی یک سیستم نصب هستند، اما با Remote Desktop میتوانید به سرور راه دور متصل شوید.
▍ دو روش اصلی Remote Desktop در لینوکس
🔵 VNC (Virtual Network Computing)
- عملکرد: تصویر دسکتاپ را به صورت پیکسلی ارسال میکند.
- مزیت: مستقل از سیستمعامل (در ویندوز، لینوکس، مک کار میکند).
- معایب: مصرف پهنای باند بالا، سرعت کمتر.
- برنامههای معروف:
tightvnc, tigervnc, vnc4server
- کلاینت:
vncviewer, Remmina
🟢 Xrdp (RDP برای لینوکس)
- عملکرد: از پروتکل RDP (Remote Desktop Protocol) استفاده میکند (مشابه ویندوز).
- مزیت: سرعت بالا، پهنای باند کمتر، سازگاری با کلاینتهای ویندوز (مثل Remote Desktop Connection).
- معایب: نیاز به نصب و پیکربندی روی سرور لینوکس.
- برنامههای معروف:
xrdp
- کلاینت:
Remmina, mstsc (ویندوز)
تفاوت اصلی: VNC تصویر را به صورت پیکسلی میفرستد، اما Xrdp از پروتکل RDP استفاده میکند که بهینهتر است.
▍ برنامه Remmina
Remmina یک کلاینت (مشتری) Remote Desktop قدرتمند و متنباز است که از پروتکلهای مختلفی پشتیبانی میکند:
- RDP (برای اتصال به ویندوز و لینوکس با Xrdp)
- VNC (برای اتصال به سیستمهای با VNC Server)
- SSH (برای اتصال به خط فرمان)
- XDMCP (برای اتصال به X Display Manager)
💡 نکته: Remmina کلاینت پیشفرض بسیاری از توزیعهای لینوکس (مثل اوبونتو، کالی) است و به راحتی از مخازن نصب میشود.
▍ نصب و راهاندازی Remmina
• نصب در دبیان/کالی
┌──(ya3in㉿kali)-[~]
└─$ sudo apt update
└─$ sudo apt install remmina remmina-plugin-*
توضیح: remmina-plugin-* همه پلاگینهای پشتیبانیشده (RDP، VNC، SSH و ...) را نصب میکند.
• نصب در رد هت (AlmaLinux)
┌──(user㉿almalinux)-[~]
└─$ sudo dnf install remmina remmina-plugins-*
برای نصب Remmina در دبیان از apt و در رد هت از dnf استفاده میشود.
▍ راهاندازی Xrdp (سرور RDP برای لینوکس)
برای اینکه بتوانید با Remmina به یک سیستم لینوکس متصل شوید، باید روی آن سیستم Xrdp نصب و راهاندازی کنید.
• نصب Xrdp روی سرور لینوکس
┌──(ya3in㉿kali)-[~]
└─$ sudo apt install xrdp
└─$ sudo systemctl enable --now xrdp
توضیح: xrdp سرویس RDP را روی سیستم لینوکس راهاندازی میکند. پورت پیشفرض آن 3389 است (مشابه ویندوز).
پورت پیشفرض RDP 3389 است. این پورت هم در ویندوز و هم در لینوکس (با Xrdp) استفاده میشود.
▍ اتصال با Remmina
مراحل اتصال:
- برنامه Remmina را اجرا کنید.
- روی علامت + (New Connection) کلیک کنید.
- Name: یک نام دلخواه برای اتصال وارد کنید.
- Protocol: نوع پروتکل را انتخاب کنید:
- RDP: برای اتصال به سیستمهای دارای Xrdp (یا ویندوز).
- VNC: برای اتصال به سیستمهای دارای VNC Server.
- Server: آدرس IP یا نام دامنه سرور مقصد را وارد کنید.
- Username / Password: نام کاربری و رمز عبور سیستم مقصد را وارد کنید.
- روی Save & Connect کلیک کنید.
💡 نکته: اگر به سیستم ویندوز متصل میشوید، از پروتکل RDP استفاده کنید. اگر به سیستم لینوکس با VNC متصل میشوید، از پروتکل VNC استفاده کنید.
▍ مقایسه VNC و Xrdp
| ویژگی |
VNC |
Xrdp (RDP) |
| پروتکل |
RFB (Remote Frame Buffer) |
RDP (Remote Desktop Protocol) |
| ارسال داده |
تصویر به صورت پیکسلی |
دستورات گرافیکی (بهینهتر) |
| پهنای باند |
زیاد |
کم |
| سرعت |
کمتر |
بیشتر |
| سازگاری با ویندوز |
نیاز به کلاینت VNC |
✅ Remote Desktop Connection پیشفرض ویندوز کار میکند. |
| پورت پیشفرض |
5900 (اولین نمایشگر) |
3389 |
| مثال سرور |
tightvncserver, tigervncserver |
xrdp |
پورتهای پیشفرض: VNC = 5900، RDP (Xrdp) = 3389
✅ جمعبندی نهایی برای امتحان:
- Remote Desktop: اتصال به GUI سیستم دیگر از راه دور.
- VNC: پروتکل قدیمیتر با ارسال پیکسلی (پورت 5900).
- Xrdp: پروتکل RDP برای لینوکس (پورت 3389).
- Remmina: کلاینت چندپروتکلی (RDP, VNC, SSH, ...).
- Xrdp: برای اتصال کلاینتهای ویندوزی (مثل mstsc) به لینوکس.
- VNC: برای اتصال کلاینتهای VNC (مثل Remmina) به لینوکس.